package com.yuanqi.java.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanqi.java.dto.PurchaseOrderDetailDTO;
import com.yuanqi.java.dto.PurchaseOrderDetailQueryDTO;
import com.yuanqi.java.dto.PurchaseOrderDetailVO;
import com.yuanqi.java.entity.PurchaseOrderDetail;

import java.util.List;

/**
 * <p>
 * 采购订单明细表 服务类
 * </p>
 *
 * @author author
 * @since 2025-01-27
 */
public interface IPurchaseOrderDetailService extends IService<PurchaseOrderDetail> {

    /**
     * 分页查询采购明细
     *
     * @param page 分页参数
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    Page<PurchaseOrderDetailVO> pageQuery(Page<PurchaseOrderDetail> page, PurchaseOrderDetailQueryDTO queryDTO);

    /**
     * 根据采购单ID查询明细列表
     *
     * @param orderId 采购单ID
     * @return 明细列表
     */
    List<PurchaseOrderDetail> getDetailsByOrderId(Long orderId);

    /**
     * 批量保存采购明细
     *
     * @param details 明细列表
     * @return 是否成功
     */
    boolean saveBatchDetails(List<PurchaseOrderDetailDTO> details);

    /**
     * 根据采购单ID删除明细
     *
     * @param orderId 采购单ID
     * @return 是否成功
     */
    boolean deleteByOrderId(Long orderId);
} 